<?php

/*
 *  Funktionen für admin.php
 * author: Tobias Domhan
 */


/*
 * neuen tag erstellen, falls noch nicht angelegt, anschließend zu diesem tag wechseln
 * falls er schon besteht direkt dorthin wechseln
 */
function create_newday() {
	$mysqldate = date( 'Y-m-d', time() );
	$result = mysql_query("SELECT * FROM tag WHERE datum=\"$mysqldate\"");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	if(mysql_num_rows($result)==0) {
		/* Tag noch nicht vorhanden */
		$result = mysql_query("INSERT INTO `bestellungen`.`tag` (
					`datum` ,
					`geschlossen`,
					`abrechnung`
					)
					VALUES (
					'$mysqldate', '0' , '0'
					);");
		if (!$result) {
    		die('Ungültige Abfrage: ' . mysql_error());
		}
	} 
	return $mysqldate;
}

function get_available_days() {
	$result = mysql_query("SELECT * FROM tag ORDER BY datum desc");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	$available_days=array();
	while($row=mysql_fetch_array($result)){
		 array_push($available_days, $row);
	}
	return $available_days;
}

function get_artikel($date) {
	$result = mysql_query(" SELECT *
							FROM artikel
							WHERE artikel.id_artikel NOT
							IN (
							
							SELECT id_artikel
							FROM artikel_tag
							WHERE artikel_tag.datum = '$date'
							)");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	$artikel=array();
	while($row=mysql_fetch_array($result)){
		 array_push($artikel, $row);
	}
	return $artikel;
}

function change_price($artikel_id, $preis, $date) {
	$result = mysql_query(  " UPDATE `bestellungen`.`artikel_tag`" .
							" SET `preis` = '$preis'" .
							" WHERE `artikel_tag`.`datum` = '$date'" .
							" AND `artikel_tag`.`id_artikel` = $artikel_id LIMIT 1");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}	 
}

function change_einkaeufer($artikel_id, $user_id, $date) {
	$result = mysql_query(  " UPDATE `bestellungen`.`artikel_tag`" .
							" SET `id_user` = '$user_id'" .
							" WHERE `artikel_tag`.`datum` = '$date'" .
							" AND `artikel_tag`.`id_artikel` = $artikel_id LIMIT 1");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}	 
}

function get_user() {
	$result = mysql_query("SELECT *
						   FROM benutzer
						   ORDER BY id_user ASC");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	$user=array();
	while($row=mysql_fetch_array($result)){
		 array_push($user, $row);
	}
	return $user;
}


function get_bestellungen($date) {
	$result = mysql_query(" SELECT benutzer.kurs, benutzer.name, bestellung_artikel.menge, artikel.name AS artikelname, bestellung.datum
							FROM bestellung, benutzer, artikel, bestellung_artikel
							WHERE bestellung.id_bestellung = bestellung_artikel.id_bestellung
							AND bestellung_artikel.id_artikel = artikel.id_artikel
							AND benutzer.id_user = bestellung.id_user
							AND DATE( bestellung.datum ) = '$date'");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	$bestellungen=array();
	while($row=mysql_fetch_array($result)){
		 array_push($bestellungen, $row);
	}
	return $bestellungen;
}

function get_artikel_already_added($date){
	$result = mysql_query("SELECT *
							FROM artikel, artikel_tag
							WHERE artikel.id_artikel=artikel_tag.id_artikel
							AND artikel_tag.datum='$date'");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	$artikel=array();
	while($row=mysql_fetch_array($result)){
		 array_push($artikel, $row);
	}
	return $artikel;
}



function artikel_hinzu($artikel, $date) {
	$result=mysql_query("INSERT INTO `bestellungen`.`artikel_tag` (
						`datum` ,
						`id_artikel`
						)
						VALUES (
						'$date', '$artikel'
						);");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
}

function artikel_entfernen($artikel, $date) {
	/* aus artikel_tag löschen*/
	$result=mysql_query("DELETE FROM `artikel_tag` WHERE `artikel_tag`.`datum` = '$date' AND `artikel_tag`.`id_artikel` = $artikel LIMIT 1");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	/*
	 * bestellungen löschen, die diesen artikel enthalten
	 */
	 
	 $result=mysql_query(
			"DELETE FROM `bestellung_artikel`
			 WHERE `bestellung_artikel`.`id_bestellung` In (SELECT id_bestellung
			 FROM bestellung
			 WHERE DATE(datum)='$date')
			 AND `bestellung_artikel`.`id_artikel` = $artikel");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
}

function bestellungen_abschliessen($date) {
	$result=mysql_query("UPDATE `bestellungen`.`tag` SET `geschlossen` = '1' WHERE datum = \"$date\"");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
}

function bestellungen_zulassen($date) {
	$result=mysql_query("UPDATE `bestellungen`.`tag` SET `geschlossen` = '0' WHERE datum = \"$date\"");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
}

function aus_abrechnung_entfernen($date) {
	$result=mysql_query("UPDATE `bestellungen`.`tag` SET `abrechnung` = '0' WHERE datum = \"$date\"");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
}

function zu_abrechnung_hinzu($date) {
	$result=mysql_query("UPDATE `bestellungen`.`tag` SET `abrechnung` = '1' WHERE datum = \"$date\"");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
}

function get_status($date) {
	$result=mysql_query("SELECT * FROM tag WHERE DATUM = '$date'");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	$row=mysql_fetch_array($result);
	if($row["geschlossen"]=="0") {
		echo "Bestellungen k&ouml;nnen eingehen";
	} else {
		echo "Bestellungen abgeschlossen";
	}
	echo "<br />";
	if($row["abrechnung"]=="0") {
		echo "Tag wird noch nicht abgerechnet";
	} else {
		echo "Tag wird abgerechnet";
	}
}

function bestellungen_zugelassen($date) {
	$result=mysql_query("SELECT * FROM tag WHERE DATUM = '$date' AND geschlossen = 0");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	if(mysql_num_rows($result)==0) {
		return false;
	} else {
		return true;
	}
}

function wird_abgerechnet($date) {
	$result=mysql_query("SELECT * FROM tag WHERE DATUM = '$date' AND abrechnung = 0");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	if(mysql_num_rows($result)==0) {
		return true;
	} else {
		return false;
	}
}

function other_users_name($other_user_id) {
	$result = mysql_query("SELECT name FROM benutzer WHERE id_user = '$other_user_id'");
	if (!$result) {
    	die('Ungültige Abfrage: ' . mysql_error());
	}
	if(mysql_num_rows($result)==0) {
		return false;
	} else {
		$result = mysql_fetch_array($result,MYSQL_ASSOC);
		return $result['name'];
	}
}

function other_user_order($DATE,$other_users_id)
{
	// Verfügbare Artikel & Name des Artikels (nicht gemeinsame)
	$query = mysql_query("SELECT `name`,`einheit` FROM `artikel` WHERE `id_artikel` IN (SELECT `id_artikel` FROM `artikel_tag` WHERE `datum` LIKE '".$DATE."') AND `gemeinsam`=0");
	$num = mysql_num_rows($query);
	
	if($num < 1) echo "<h5>Keine Artikel verf&uuml;gbar!</h5>";
	else 
	{?>
		<form method="post" action="admin.php?action=order_for_another_user&date=<?echo $DATE?>"
		<table><tr><th>Artikel</th><th>Einheit</th><th>Menge</th></tr>
		<?
		$stelle = 0;
		$schonmalabgegeben = 0;
		$ids = array();
		// verfügbare Artikel in Tabelle eintragen
		while($ergebnis = mysql_fetch_array($query,MYSQL_ASSOC))
		{
			// ID des Artikels holen zum Identifizieren nach Übermittlung des Formulars
			$query2 = mysql_query("SELECT `id_artikel` FROM `artikel` WHERE `name` LIKE '".$ergebnis['name']."' AND `einheit` LIKE '".$ergebnis['einheit']."'");
			$ergebnis2 = mysql_fetch_array($query2,MYSQL_ASSOC);
			
			$ids[$stelle] = $ergebnis2['id_artikel'];
			
			// Hat der User schon eine Bestellung abgegeben und eine Menge für diesen Artikel festgelegt
			$query3 = mysql_query("SELECT `menge` FROM `bestellung_artikel` WHERE `id_artikel`=".$ergebnis2['id_artikel']." AND `id_bestellung` IN (SELECT `id_bestellung` FROM `bestellung` WHERE `id_user`=".$other_users_id." AND DATE(`datum`) LIKE '".$DATE."')");
			$num3 = mysql_num_rows($query3);
			$ergebnis3 = mysql_fetch_array($query3,MYSQL_ASSOC);
			
			echo "<tr><td>".$ergebnis['name']."</td>";
			echo "<td>".$ergebnis['einheit']."</td>";
			if($num3 > 0)
			{
				$schonmalabgegeben = 1;
				echo "<td><input type=\"text\" name=\"mengen[".$stelle."]\" value=\"".$ergebnis3['menge']."\" /></td>";
			}
			else
			{
				echo "<td><input type=\"text\" name=\"mengen[".$stelle."]\"/></td>";
			}
			$stelle++;
		}
		$ids = implode('#',$ids);
		echo "<input type=\"hidden\" name=\"ids\" value=\"".$ids."\">";
		echo "</table>";
		
		
		// Button zum Absenden ausgeben
		if($schonmalabgegeben == 1) {?><input type="submit" name="submit" value=" Bestellung aendern " /><?}
		else {?><input type="submit" name="submit" value=" Bestellen " /><?}
		?><input type="hidden" name="other_users_id" value="<? echo $other_users_id ?>"></form><?
	}
}
	
function other_user_change_order($DATE,$other_users_id)
{
	// ID der bereits angelegten Bestellung herausfinden 
	$query = mysql_query("SELECT `id_bestellung` FROM `bestellung` WHERE `id_user`=".$other_users_id." AND DATE(`datum`)='".$DATE."'");
	$ergebnis = mysql_fetch_array($query,MYSQL_ASSOC);
	$id_bestellung = $ergebnis['id_bestellung'];
	
	// einzelne Artikel zur Bestellung hinzufügen
	$mengen = $_POST['mengen'];
	$ids = explode('#',$_POST['ids']);
	
	for($i=0;$i<count($ids);$i++)
	{
		if(!$ids[$i]) $ids[$i]=0;
        //###########################
        // START: Änderung zu Issue 4
        $query8 = mysql_query("SELECT * FROM `bestellung_artikel` WHERE `id_bestellung`=".$id_bestellung." AND `id_artikel`=".$ids[$i]);
        $ergebnis8 = mysql_fetch_array($query8,MYSQL_ASSOC);
        if(!$ergebnis8)
        {
            $query9 = mysql_query("INSERT INTO `bestellung_artikel` (`id_bestellung`, `id_artikel`, `menge`) VALUES ('".$id_bestellung."', '".$ids[$i]."', '".mysql_escape_string($mengen[$i])."')");
            $aff9 = mysql_affected_rows();
            if($aff9<0)
            {
            echo "&Auml;nderung fehlgeschlagen!<br />Admin benachrichtigen!";
            exit();
            }
        }
        else
        {
            $query2 = mysql_query("UPDATE `bestellungen`.`bestellung_artikel` SET `menge` = '".mysql_real_escape_string($mengen[$i])."' WHERE `id_bestellung`=".$id_bestellung." AND `id_artikel`=".mysql_real_escape_string($ids[$i])." LIMIT 1");
            $aff2 = mysql_affected_rows();
            if($aff2<0)
            {
                echo "&Auml;nderung fehlgeschlagen!<br />Admin benachrichtigen!";
                exit();
            }
        }
        // ENDE: Änderung zu Issue 4
        //##########################
	}
	echo "&Auml;nderung erfolgreich angenommen!<br />";
}

function other_user_add_order($DATE,$other_users_id)
{
	// Neue Bestellung anlegen
	$query = mysql_query("INSERT INTO `bestellungen`.`bestellung` (`id_bestellung`, `id_user`, `datum`) VALUES (NULL, '".$other_users_id."', NOW())");
	$aff = mysql_affected_rows();
	if($aff < 1)
	{
		echo "Bestellung fehlgeschlagen!<br />Admin benachrichtigen!";
		exit();
	}
	else
	{
		// Bestellungs-ID
		$id_bestellung = mysql_insert_id();
		
		// einzelne Artikel zur Bestellung hinzufügen
		$mengen = $_POST['mengen'];
		$ids = explode('#',$_POST['ids']);
		
		for($i=0;$i<count($ids);$i++)
		{
			if(!$ids[$i]) $ids[$i]=0;
			$query2 = mysql_query("INSERT INTO `bestellungen`.`bestellung_artikel` (`id_bestellung`, `id_artikel`, `menge`) VALUES ('".$id_bestellung."', '".$ids[$i]."', '".mysql_real_escape_string($mengen[$i])."')");
			$aff2 = mysql_affected_rows();
			if($aff2<0)
			{
				echo "Bestellung fehlgeschlagen!<br />Admin benachrichtigen!";
				exit();
			}
		}
		echo "Bestellung erfolgreich angenommen!<br />";							
	} 
}
?>
